package com.yungu.swift.order.model.vo;

import com.yungu.swift.base.model.BaseVo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * 纪录每个派单线程的配置和执行参数
 *
 * @author cuixiuyin
 * @date 2017/12/27
 */
@Data
public class OrderAssignScheduleTaskVo extends BaseVo {
    /**
     * 定时线程标识(OrderUuid)
     */
    private String taskId;
    /**
     * 第一次轮询半径
     */
    private BigDecimal firstRadius;
    /**
     * 每轮递增轮询半径
     */
    private BigDecimal increaseRadius;
    /**
     * 最大轮询半径
     */
    private BigDecimal maxRadius;
    /**
     * 执行间隔(秒)
     */
    private BigDecimal intervalSecond;
    /**
     * 最大等待时长(秒)
     */
    private BigDecimal maxWaitSecond;
    /**
     * 开始允许向下听单时间戳
     */
    private Long listenDownTimestamp;
    /**
     * 定时线程开始时间
     */
    private Long taskStartTimeStamp;
    /**
     * 定时线程执行次数
     */
    private AtomicInteger invokeCount;

    /**
     * 路面距离过滤开关 0 关闭 1 开启
     */
    private Integer pavementDistanceFlag;

    /**
     * 司机上一单完成时间开关 0 关闭 1开启
     */
    private Integer driverPreviousOrderFlag;

    /**
     * 司机服务分开关 0 关闭 1开启
     */
    private Integer driverScoreFlag;

    /**
     * 当天完成订单数开关 0 关闭 1开启
     */
    private Integer currentDayOrderCountFlag;
    /**
     * 业务查询参数
     */
    private Map<String, Object> searchParams;
}
